package com.letoo.sso.dataaccess.dao.db;

import org.apache.ibatis.annotations.Param;

import com.letoo.sso.dataaccess.datasource.DbRepository;

/**
 * @author: chenggui.huang
 * @date: 2014-03-21 18:07
 */
@DbRepository
public interface CounterDBDAO {
    /**
     * 根据计数器类型和当前日期更新计数器，用于每天重置的计数器
     * 
     * @param keyType
     *            计数器类型
     * @param length
     * @param dateFormat
     *            数据格式
     * @return
     */
    int updateResetCounter(@Param("keyType") String keyType, @Param("length") Integer length, @Param("dateFormat") String dateFormat);

    /**
     * 根据计数器类型更新计数器
     * 
     * @param keyType
     * @return
     */
    int updateNonResetCounter(@Param("keyType") String keyType, @Param("length") Integer length);

    /**
     * 重置计数器，counter置为length，currentDate置为当前日期
     * 
     * @param keyType
     * @param length
     * @param dateFormat
     * @return
     */
    int resetCounter(@Param("keyType") String keyType, @Param("length") Integer length, @Param("dateFormat") String dateFormat);

    /**
     * 获取计数器的当前值
     * 
     * @param keyType
     * @return
     */
    Long getCounter(String keyType);
}
